ヘッダーをスキップ
Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド
リリース6.0
B25769-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

単純なレプリケーション・スキーム

この項では、マスター・データ・ストア内の単一表の内容をサブスクライバ・データ・ストアにレプリケートする単純なレプリケーション・スキームの設定方法について説明します。わかりやすくするために、両方のデータ・ストアは同じコンピュータに存在することとします。

図2.1 単純なレプリケーション・スキーム

手順は次のとおりです。

注意: アクセス制御を有効にしてTimesTenをインストールした場合、この項の手順を実行するには、データ・ストアに対するADMIN権限が必要です。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のアクセス制御とroot以外のインストールに関する章を参照してください。

手順1: マスター・データ・ストアおよびサブスクライバ・データ・ストアの作成

masterDSNおよびsubscriberDSNという2つのシステム・データソース(システムDSN)を作成します。『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTenデータ・ストアの作成に関する章を参照してください。

注意: レプリケーション・スキームに指定された各データ・ストアの名前は、データ・ストアに関するDSN定義内のData Store Path and Name属性に指定されたファイル名(パスなし)の接頭辞と一致する必要があります。Data Source Name属性に指定された名前を使用するレプリケーション・スキームは機能しません。混乱を避けるには、各DSN定義内のData Store Path and Name属性とData Source Name属性に同じ名前を使用します。たとえば、データ・ストア・パスがディレクトリ/サブディレクトリ/foo.ds0の場合は、CREATE REPLICATION文にfooというデータ・ストア名を使用する必要があります。

図2.2 マスター・データ・ストアおよびサブスクライバ・データ・ストア

masterdsは、次のように設定します。

手順2: 表およびレプリケーション・スキームの作成

図2.3 マスターからサブスクライバへのrepl.tabのレプリケート

テキスト・エディタを使用して、repscheme.sqlというSQLファイルを作成し、次の文を入力します。

例2.1
CREATE TABLE repl.tab (a SMALLINT NOT NULL, 
                       b SMALLINT, 
                       c CHAR(8), 
                       PRIMARY KEY (a)); 
CREATE REPLICATION repl.repscheme 
ELEMENT e TABLE repl.tab 
   MASTER masterds 
   SUBSCRIBER subscriberds; 
 

コマンド・プロンプト・ウィンドウを開き、ttIsqlを使用してrepscheme.sqlファイルに指定されているSQLコマンドをマスターおよびサブスクライバの両方のデータ・ストアに適用します。

> ttIsql -f repscheme.sql masterds > ttIsql -f repscheme.sql subscriberds

手順3: レプリケーション・エージェントの起動

ttAdminユーティリティを使用して、マスターおよびサブスクライバのレプリケーション・エージェントを起動します。

> ttAdmin -repStart masterds 
> ttAdmin -repStart subscriberds 
 

図2.4 マスターおよびサブスクライバのレプリケーション・エージェント

ttAdmin ttAdmin-repStartコマンドの出力には、「Replication Manually Started: True.」と表示されます。

例2.2
> ttAdmin -repStart masterds 
RAM Residence Policy            : inUse 
Manually Loaded In Ram          : False 
Replication Agent Policy        : manual 
Replication Manually Started    : True 
Oracle Agent Policy             : manual 
Oracle Agent Manually Started   : False 
> ttAdmin -repStart subscriberds 
RAM Residence Policy            : inUse 
Manually Loaded In Ram          : False 
Replication Agent Policy        : manual 
Replication Manually Started    : True 
Oracle Agent Policy             : manual 
Oracle Agent Manually Started   : False 

手順4: レプリケート表へのデータの挿入

コマンド・プロンプト・ウインドウで、ttIsqlを使用してマスター・データ・ストアに接続し、INSERTコマンドでrepl.tab表に行を挿入します。

> ttIsql masterds 
Command> INSERT INTO repl.tab VALUES (1, 22, `Hello'); 
Command> INSERT INTO repl.tab VALUES (3, 86, `World'); 
 

サブスクライバ用に2つ目のコマンド・プロンプト・ウインドウを開き、サブスクライバ・データ・ストアに接続してrepl.tab表の内容を確認します。

> ttIsql subscriberds Command> SELECT * FROM repl.tab; < 1, 22, Hello> < 3, 86, World> 2 rows found.
注意: 環境によっては、サブスクライバでデータが使用可能になるまでに少し時間がかかる場合があります。

図2.5 サブスクライバ・データ・ストアへの変更のレプリケート

masterdsデータ・ストア内のrepl.tab表に対してさらに変更を行うと、それらの変更はsubscriberdsデータ・ストア内の表にレプリケートされます。

masterdsからsubscriberdsにレプリケートできた場合は、「手順5: レプリケーション・スキームおよび表の削除」に進みます。そうでない場合は、「レプリケーションの問題」のトラブルシューティングのヒントを参照してください。

手順5: レプリケーション・スキームおよび表の削除

レプリケーションのテストを完了した後、ttIsqlを終了し、ttAdminユーティリティを使用してマスターおよびサブスクライバのレプリケーション・エージェントを停止します。

Command> exit 
> ttAdmin -repStop masterds 
> ttAdmin -repStop subscriberds 
 

repl.tab表およびrepl.schemeレプリケーション・スキームをマスターおよびサブスクライバのデータ・ストアから削除するには、テキスト・エディタを使用して、次の内容を含む別のSQLファイルdropRepscheme.sqlを作成します。

例2.3
DROP REPLICATION repl.scheme; 
DROP TABLE repl.tab; 
注意: レプリケート表を削除する前に、レプリケーション・スキームを削除する必要があります。そうしない場合、「Cannot drop replicated table or index」というエラーを受信します。

コマンド・プロンプト・ウインドウで、ttIsqlユーティリティを使用して、dropRepscheme.sqlファイルに指定されているSQLコマンドをマスターおよびサブスクライバの両方のデータ・ストアに適用します。

> ttIsql -f dropRepscheme.sql masterds 
> ttIsql -f dropRepscheme.sql subscriberds